
/**
 * @func 使用 array.find()
 * @desc 在数组中查找某一项是否存在
 * @param {Arraay,Value}
 * @return {Object}
 */
export function getAboutValue(arr, values) {
    return arr.find(obj => obj.value == `${values}`);
}

/**
 * @func 使用 || 清理代码
 * @desc 检测值是否为空，如果是空就返回“0”
 * @param {任意值}
 * @return {value / “0”}
 */
export function getUserRole(role) {
    return role || '0';  // <-- here set default value
}

/**
 * @func
 * @desc 数组扁平化，多维数组变成常规数组
 * @param {多维数组}
 * @return {Array}
 */

export function flat(arr = []) {
    return arr.reduce((t, v) => t.concat(Array.isArray(v) ? flat(v) : v), [])
}

/**
 * @func
 * @desc reduce实现数组的累加
 * @param {Array}
 * @return {}
 */
export function accumulation(arr = []) {
    return arr.reduce((x, y) => x + y, 0)
}

/**
 * @func
 * @desc 统计数组出现的频率,返回的是一个map格式的数据
 * @param {Array}
 * @return {Map}
 */
export  function countFrequency(arr) {
    return arr.reduce(function (result, ele) {
        if (result.get(ele) != undefined) {
            result.set(ele, result.get(ele) + 1)
        } else {
            result.set(ele, 1)
        }
        return result
    }, new Map())
}
/**
 * @func
 * @desc 字符串的处理方法
 * @param {Array}  
 * @return {Array Have Objest} 
 */
export function getHaveObject(arr){
    const res = []
    for(let i = 1; i<arr.length;i+=2) {
        res.push({
            x: arr[i-1].slice(2),
            y: arr[i].slice(2)
        })
    }
}
/**
 * @func 时间处理函数
 * @desc 格式化时间
 * @param {String}  
 * @return {String} 
 */
export const formatDate = (dateStr, fmt = "yyyy-MM-dd hh:mm:ss") => {
    if (!dateStr) return "";
    let date = new Date(dateStr);
    let o = {
      "y+": date.getFullYear(),
      "M+": date.getMonth() + 1,
      "d+": date.getDate(),
      "h+": date.getHours(),
      "m+": date.getMinutes(),
      "s+": date.getSeconds(),
    };
    for (let k in o) {
      if (new RegExp(`(${k})`).test(fmt)) {
        const str = o[k] + "";
        fmt = fmt.replace(RegExp.$1, str.length > 1 ? str : padLeftZero(str));
      }
    }
    return fmt;
  };

